package br.com.iswe.gwt.ui.client.comp;

import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;

import com.google.gwt.user.client.ui.RadioButton;

public class RadioGroup {

	HashMap radioToValue = new HashMap();
	HashMap valueToRadio = new HashMap();
	
	public void addRadioButton(RadioButton item) {
		radioToValue.put(item, "");
	}
	
	public Collection getRationButtons(){
		return radioToValue.keySet();
	}
	
	public void setValue(String value) {
		//limpa todos os radios
		clear();
		//Obtem o Radio apartir do valor
		RadioButton item = (RadioButton)valueToRadio.get(value);
		if(item != null){
			//marca como Checked
			item.setChecked(true);
		}
	}
	
	public void clear() {
		//varre todos os objetos e deixa como checked false
		Iterator itens = radioToValue.keySet().iterator();
		while(itens.hasNext()){
			RadioButton item = (RadioButton)itens.next();
			item.setChecked(false);
		}
	}
	public boolean isChecked() {
		//varre todos os objetos para verificar se possui algum selecionado
		Iterator itens = radioToValue.keySet().iterator();
		while(itens.hasNext()){
			RadioButton item = (RadioButton)itens.next();
			if(item.isChecked()){
				return true;
			}
		}
		return false;
	}
	
	public RadioButton getCheckedRadioButton() {
		//varre todos os objetos para retornar o valor do item selecionado.
		Iterator itens = radioToValue.keySet().iterator();
		while(itens.hasNext()){
			RadioButton item = (RadioButton)itens.next();
			if(item.isChecked()){
				return item;
			}
		}
		return null;
	}
	
	public String getValue() {
		return getValue(getCheckedRadioButton());
	}
	public void setValue(RadioButton item, String value) {
		radioToValue.put(item, value);
		valueToRadio.put(value, item);
	}
	public String getValue(RadioButton item) {
		String valor = (String)radioToValue.get(item);
		return valor;
	}

}
